function M = methods(S)
% BVQXinifile::methods  - get methods of class

% Version:      v0.7b
% Build:        7090312
% Date:         Sep-03 2007, 12:47 PM CEST
% Author:       Jochen Weber, Brain Innovation, B.V., Maastricht, NL
% URL / Info:   http://wiki.brainvoyager.com/BVQXtools

% stored in global storage
global bvqxinifile_methods;
if isempty(bvqxinifile_methods)
    bvqxinifile_methods = struct( ...
        'display',      {{}}, ...
        'GetCaller',    {{}}, ...
        'GetChildren',  {{}}, ...
        'GetComplete',  {{}}, ...
        'GetFilename',  {{}}, ...
        'GetFoot',      {{}}, ...
        'GetHead',      {{}}, ...
        'GetID',        {{}}, ...
        'GetIniString', {{}}, ...
        'GetParents',   {{}}, ...
        'GetProtection',{{}}, ...
        'GetSection',   {{'^char$'}}, ...
        'GetSections',  {{}}, ...
        'GetSectionSettings', {{'^char$'}}, ...
        'GetSetting',   {{'^char$', '^char$'}}, ...
        'IsSection',    {{'^char$'}}, ...
        'IsSetting',    {{'^char$', '^char$'}}, ...
        'IsValid',      {{}}, ...
        'NewIniFile',   {{'[^char$'}}, ...
        'Release',      {{}}, ...
        'ReleaseAllFiles', {{}}, ...
        'Reload',       {{}}, ...
        'ReloadAllFiles', {{}}, ...
        'Remove',       {{'^char$', '[^char$'}}, ...
        'ResetClass',   {{}}, ...
        'Save',         {{}}, ...
        'SaveAs',       {{'^char$'}}, ...
        'SetComplete',  {{'^struct$'}}, ...
        'SetFoot',      {{'^char$'}}, ...
        'SetHead',      {{'^char$'}}, ...
        'SetIniString', {{'^char$'}}, ...
        'SetParent',    {{'^(double|bvqxinifile)$'}}, ...
        'SetProtection',{{'^char$'}} ...
    );
end

% bogus check
if ~isBVQXinifile(S)
    error( ...
        'BVQXinifile:BadArgument', ...
        'Bad argument supplied to class method.' ...
    );
end

% return fieldnames
M = fieldnames(bvqxinifile_methods);
